home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).do / SUPER.SCORES.bas < prev    next >
BASIC Source File  |  1996-12-24  |  9KB  |  251 lines

  1. 20  REM +----------------------+    :  SUPERSCORES PROGRAM :    :                      :    : ^ ^      BY          :    : ' '                  :    :  O   BRAD GREEN      :    :                      :    +----------------------+   
  2. 25  REM +-----------------------    :                      :    :   COPYRIGHT 1982     :    :                      :    : WRITTEN 05-22-1982   :    :                      :    :    * * * * * * *     :    +----------------------+   
  3. 30  REM  LAST UPDATE- 06-04-1982
  4. 31  REM <CTRL-J><CTRL-J>
  5. 50  REM <CTRL-J><CTRL-J>**PIDGEONS**<CTRL-J><CTRL-J>
  6. 51  REM  A-FORNEXT LOOPS
  7. 52  REM  D$-DAY STRING
  8. 53  REM  DT$()-RECORD DATE
  9. 54  REM  F-SORT FLAG
  10. 55  REM  G$-GET SRING
  11. 56  REM  GM$-GAME STRING
  12. 57  REM  ID$-INPUT DATE
  13. 58  REM  IG$-IMPUT GAME
  14. 59  REM  IH$-INPUT HIGH SCORE
  15. 60  REM  IP$-INPUT PUBLISHER
  16. 61  REM  IW$-INPUT RECORD WINNER
  17. 62  REM  KE-KEY DEPRESSED
  18. 63  REM  M$-MONTH
  19. 64  REM  PB$-PUBLISHER
  20. 65  REM  PL$-PLAYER
  21. 66  REM  Q$-ANY OL' STRING
  22. 67  REM  RT-RECORD TOTAL
  23. 68  REM  SC$-SCORE
  24. 69  REM  SF$-SAVE FLAG
  25. 70  REM  TD$-TODAY'S DATE
  26. 71  REM  T$-TEMP PIDGEON HOLE
  27. 72  REM  X-ARRAY VARIABLE
  28. 73  REM  Y$-YEAR
  29. 74  REM  Z-FORNEXT LOOP
  30. 80  DIM GM$(100)
  31. 82  DIM PB$(100)
  32. 84  DIM SC$(100)
  33. 86  DIM PL$(100)
  34. 88  DIM DT$(100)
  35. 199  REM <CTRL-J><CTRL-J>**HEADER**<CTRL-J><CTRL-J>
  36. 200  POKE 34,0: POKE 35,24: SPEED= 255: HOME 
  37. 230  INVERSE 
  38. 240  FOR A = 1 TO 3
  39. 250  VTAB A: FOR Z = 1 TO 20: PRINT "V^";: NEXT 
  40. 260  NEXT A: NORMAL 
  41. 270 Q$ = " SUPERSCORES PROGRAM BY BRAD GREEN "
  42. 280  VTAB 2: HTAB 20 - INT(( LEN(Q$)/2)): PRINT Q$
  43. 285  REM <CTRL-J><CTRL-J>**ENTER DATE**<CTRL-J><CTRL-J>
  44. 290  VTAB 6: PRINT "PLEASE ENTER TODAY'S NUMERIC DATE."
  45. 300  VTAB 10: INPUT "MONTH ";M$
  46. 310  IF  VAL(M$) <1  OR  VAL(M$) >12  THEN 300
  47. 320  IF  LEN(M$) = 1  THEN  LET M$ = "0" +M$
  48. 330  VTAB 10: HTAB 7: PRINT M$
  49. 340  REM <CTRL-J><CTRL-J>
  50. 350  VTAB 12: INPUT "DAY   ";D$
  51. 360  IF  VAL(D$) <1  OR  VAL(D$) >31  THEN 350
  52. 370  IF  LEN(D$) = 1  THEN  LET D$ = "0" +D$
  53. 380  VTAB 12: HTAB 7: PRINT D$
  54. 390  REM <CTRL-J><CTRL-J>
  55. 400  VTAB 14: INPUT "YEAR  ";Y$
  56. 410  IF  LEN(Y$) < >2  THEN 400
  57. 420  IF  VAL(Y$) <82  THEN 400
  58. 430  REM <CTRL-J><CTRL-J>
  59. 440  LET TD$ = M$ +"-" +D$ +"-" +Y$
  60. 450  VTAB 17: PRINT "CORRECT?(Y/N) ";: INVERSE : PRINT "Y": NORMAL : WAIT  -16384,128: GET G$: PRINT  CHR$(13)
  61. 460  IF G$ = "N"  THEN 200
  62. 600  REM  <CTRL-J><CTRL-J>**LOAD FILE**<CTRL-J><CTRL-J>
  63. 610  ONERR  GOTO 1000
  64. 620  PRINT  CHR$(4);"VERIFY SUPERSCORES.FILE"
  65. 630  POKE 216,0
  66. 640  PRINT  CHR$(4);"OPEN SUPERSCORES.FILE"
  67. 650  PRINT  CHR$(4);"READ SUPERSCORES.FILE"
  68. 660  PRINT 
  69. 670  INPUT RT
  70. 680  FOR I = 1 TO RT
  71. 690  INPUT GM$(I)
  72. 700  INPUT PB$(I)
  73. 710  INPUT SC$(I)
  74. 720  INPUT PL$(I)
  75. 730  INPUT DT$(I)
  76. 740  NEXT I
  77. 750  PRINT  CHR$(4);"CLOSE SUPERSCORE.FILE"
  78. 1000  REM <CTRL-J><CTRL-J>**SCREEN**<CTRL-J><CTRL-J>
  79. 1010  POKE 216,0
  80. 1020  GOSUB 7000
  81. 1030  VTAB 14
  82. 1040 X = X +1
  83. 1045  IF RT = 0  THEN  PRINT "PRESS A TO ADD A FILE"
  84. 1050  IF X >RT  THEN X = 1: PRINT "======"
  85. 1060  SPEED= 200
  86. 1070  HTAB 1: PRINT GM$(X);: HTAB 20: PRINT SC$(X);: HTAB 31: PRINT DT$(X)
  87. 1080  HTAB 1: PRINT PB$(X);: HTAB 20: PRINT PL$(X)
  88. 1090  SPEED= 255
  89. 1100  PRINT 
  90. 1110  IF  PEEK( -16384) <128  THEN 1040
  91. 1120  LET KEY =  PEEK( -16384)
  92. 1130  POKE  -16368,0
  93. 1140  IF KEY = 160  THEN 2000
  94. 1150  IF KEY = 193  THEN 3000
  95. 1160  IF KEY = 196  THEN 4000
  96. 1170  IF KEY = 208  THEN 5000
  97. 1180  IF KEY = 209  THEN 8000
  98. 1190  GOTO 1040
  99. 1200  END 
  100. 2000  REM <CTRL-J><CTRL-J>**SINGLE STEP**<CTRL-J><CTRL-J>
  101. 2010  POKE  -16368,0
  102. 2020  IF  PEEK( -16384) <128  THEN 2020
  103. 2030  POKE  -16368,0
  104. 2040  GOTO 1040
  105. 2050  END 
  106. 3000  REM <CTRL-J><CTRL-J><CTRL-J>**ADD**<CTRL-J><CTRL-J>
  107. 3010 SFLAG = 1
  108. 3020  POKE 34,0: POKE 35,6
  109. 3030  HOME 
  110. 3040  VTAB 1: INVERSE : PRINT "ADD RECORD": NORMAL 
  111. 3050  VTAB 3: PRINT "GAME                   (Q ESCAPES)": VTAB 3: HTAB 6: INPUT IG$
  112. 3060  IF IG$ = "Q"  THEN 1020
  113. 3070  IF IG$ = ""  THEN 3050
  114. 3080  VTAB 3: HTAB 20: INPUT "PUBLISHER? ";IP$
  115. 3090  VTAB 4: INPUT "HIGH SCORE? ";IH$
  116. 3100  IF IH$ = ""  THEN 3090
  117. 3110  VTAB 5: INPUT "PLAYER NAME? ";IW$
  118. 3115  VTAB 6: PRINT "CORRECT? (Y/N)";: GET G$: PRINT  CHR$(13);: IF G$ = "N"  THEN 3030
  119. 3120  IF  LEN(IG$) >18  THEN  LET IG$ =  LEFT$(IG$,18)
  120. 3130  IF  LEN(IP$) >18  THEN IP$ =  LEFT$(IP$,18)
  121. 3140  IF  LEN(IH$) >8  THEN IH$ =  LEFT$(IH$,8)
  122. 3150  IF  LEN(IW$) >18  THEN IW$ =  LEFT$(IW$,18)
  123. 3160  REM    <CTRL-J><CTRL-J>**UPDATE**<CTRL-J><CTRL-J>
  124. 3170  FOR I = 1 TO RT
  125. 3180  IF IG$ = GM$(I)  THEN 3210
  126. 3190  NEXT I
  127. 3200  GOTO 3320
  128. 3210  HOME 
  129. 3220  PRINT "THE CURRENT RECORD IS:  "
  130. 3230  VTAB 3: PRINT GM$(I);: HTAB 20: PRINT SC$(I);: HTAB 31: PRINT DT$(I)
  131. 3240  VTAB 4: HTAB 1: PRINT PB$(I);: HTAB 20: PRINT PL$(I)
  132. 3250  LET GM$(I) = IG$
  133. 3260  LET PB$(I) = IP$
  134. 3270  LET SC$(I) = IH$
  135. 3280  LET DT$(I) = TD$
  136. 3290  LET PL$(I) = IW$
  137. 3300  GOTO 3390
  138. 3310  REM <CTRL-J><CTRL-J>**APPEND**<CTRL-J><CTRL-J>
  139. 3320 RT = RT +1
  140. 3330  LET GM$(RT) = IG$
  141. 3340  LET PB$(RT) = IP$
  142. 3350  LET SC$(RT) = IH$
  143. 3360  LET DT$(RT) = TD$
  144. 3370  LET PL$(RT) = IW$
  145. 3380  IF RT = 1  THEN 1020
  146. 3390  REM <CTRL-J><CTRL-J>**SORT**<CTRL-J><CTRL-J>
  147. 3400 F = 0
  148. 3410  FOR I = 1 TO RT -1
  149. 3420  IF GM$(I) < = GM$(I +1)  THEN 3590
  150. 3430  LET T$(1) = GM$(I)
  151. 3440  LET T$(2) = PB$(I)
  152. 3450  LET T$(3) = SC$(I)
  153. 3460  LET T$(4) = PL$(I)
  154. 3470  LET T$(5) = DT$(I)
  155. 3480  LET GM$(I) = GM$(I +1)
  156. 3490  LET PB$(I) = PB$(I +1)
  157. 3500  LET SC$(I) = SC$(I +1)
  158. 3510  LET PL$(I) = PL$(I +1)
  159. 3520  LET DT$(I) = DT$(I +1)
  160. 3530  LET GM$(I +1) = T$(1)
  161. 3540  LET PB$(I +1) = T$(2)
  162. 3550  LET SC$(I +1) = T$(3)
  163. 3560  LET PL$(I +1) = T$(4)
  164. 3570  LET DT$(I +1) = T$(5)
  165. 3580 F = 1
  166. 3590  NEXT I
  167. 3600  IF F = 1  THEN  GOTO 3400
  168. 3610  GET G$: PRINT  CHR$(13)
  169. 3620  GOTO 1020
  170. 4000  REM <CTRL-J><CTRL-J>**DELETE**<CTRL-J><CTRL-J>
  171. 4010  POKE 34,0: POKE 35,6
  172. 4020 SFLAG = 1
  173. 4030  HOME 
  174. 4040  VTAB 1: INVERSE : PRINT "DELETE RECORD": NORMAL 
  175. 4050  VTAB 3: INPUT "GAME? ";IG$
  176. 4060  IF IG$ = ""  THEN 3050
  177. 4070  FOR I = 1 TO RT
  178. 4080  IF IG$ = GM$(I)  THEN 4130
  179. 4090  NEXT I
  180. 4100  VTAB 5: PRINT "NOT FOUND"
  181. 4110  GET G$: PRINT  CHR$(13)
  182. 4120  GOTO 1020
  183. 4130  VTAB 3: CALL  -868: PRINT GM$(I);: HTAB 20: PRINT SC$(I);: HTAB 31: PRINT DT$(I)
  184. 4140  VTAB 4: HTAB 1: PRINT PB$(I);: HTAB 20: PRINT PL$(I)
  185. 4150  VTAB 6: PRINT "DO YOU WISH TO DELETE THIS?(Y/N)";
  186. 4160  GET G$: PRINT  CHR$(13)
  187. 4170  IF G$ < >"Y"  AND G$ < >"N"  THEN 4150
  188. 4180  IF G$ = "N"  THEN 1020
  189. 4190 RT = RT -1
  190. 4200  FOR X = I TO RT
  191. 4210  LET GM$(X) = GM$(X +1)
  192. 4220  LET PB$(X) = PB$(X +1)
  193. 4230  LET SC$(X) = SC$(X +1)
  194. 4240  LET PL$(X) = PL$(X +1)
  195. 4250  LET DT$(X) = DT$(X +1)
  196. 4260  NEXT X
  197. 4270  GOTO 1020
  198. 5000  REM <CTRL-J><CTRL-J>**PRINT-OUT**<CTRL-J><CTRL-J>
  199. 5010  POKE 34,0: POKE 35,6
  200. 5020  IF  PEEK( -16128) = 0  THEN  HOME : VTAB 3: HTAB 7: INVERSE : PRINT "PRINTER NOT INSTALLED": NORMAL :: GOTO 1020
  201. 5030  HOME 
  202. 5040  VTAB 1: INVERSE : PRINT "PRINTOUT": NORMAL 
  203. 5050  VTAB 3: PRINT "IF THE PRINTER IS READY THEN HIT RETURN"
  204. 5060  VTAB 4: PRINT "OTHERWISE HIT Q"
  205. 5070  VTAB 4: WAIT  -16384,128: GET G$: PRINT  CHR$(13): IF G$ < > CHR$(13)  AND G$ < >"Q"  THEN 5070
  206. 5080  IF G$ = "Q"  THEN 1020
  207. 5090  PRINT : PRINT  CHR$(4);"PR# 1": PRINT  CHR$(9)"80N"
  208. 5100  PRINT "SUPERSCORES PROGRAM   BY BRAD GREEN    TODAY'S DATE ";TD$
  209. 5110  PRINT 
  210. 5120  PRINT "     GAME           PUBLISHER          SCORE      PLAYER             DATE"
  211. 5130  PRINT "_____________________________________________________________________________"
  212. 5140  FOR I = 1 TO RT
  213. 5150  HTAB 1: PRINT GM$(I);: HTAB 20: PRINT PB$(I);: HTAB 40: PRINT SC$(I); TAB( 10 -( LEN(SC$(I))));PL$(I); TAB( 20 -( LEN(PL$(I))));DT$(I)
  214. 5160  NEXT I
  215. 5170  PRINT : PRINT  CHR$(4);"PR# 0"
  216. 5180  GOTO 1020
  217. 5999  END 
  218. 7000  REM <CTRL-J><CTRL-J>**MENU OF TOP**<CTRL-J><CTRL-J>
  219. 7010  POKE 34,0: POKE 35,24: HOME 
  220. 7020  VTAB 1: PRINT "A)DD D)ELETE P)RINT Q)UIT SPACEBAR-STOP"
  221. 7030  VTAB 4: PRINT "GAME               HIGH SCORE  DATE    "
  222. 7040  VTAB 5: PRINT "PUBLISHER";: HTAB 20: PRINT "PLAYER"
  223. 7050  VTAB 7: PRINT "_______________________________________"
  224. 7060  VTAB 8: POKE 34,8
  225. 7070  RETURN 
  226. 8000  REM <CTRL-J><CTRL-J>**QUIT-SAVE**<CTRL-J><CTRL-J>
  227. 8005  PRINT 
  228. 8010  POKE 34,0: POKE 35,24
  229. 8020  POKE  -16368,0
  230. 8030  IF SFLAG <1  THEN  END 
  231. 8032  ONERR  GOTO 8037
  232. 8035  PRINT  CHR$(4);"UNLOCK SUPERSCORES.FILE"
  233. 8037  POKE 216,0
  234. 8040  PRINT  CHR$(4);"OPEN SUPERSCORES.FILE"
  235. 8050  PRINT  CHR$(4);"DELETE SUPERSCORES.FILE"
  236. 8060  PRINT  CHR$(4);"OPEN SUPERSCORES.FILE"
  237. 8070  PRINT  CHR$(4);"WRITE SUPERSCORES.FILE"
  238. 8080  PRINT RT
  239. 8090  FOR I = 1 TO RT
  240. 8100  PRINT GM$(I)
  241. 8110  PRINT PB$(I)
  242. 8120  PRINT SC$(I)
  243. 8130  PRINT PL$(I)
  244. 8140  PRINT DT$(I)
  245. 8150  NEXT I
  246. 8160  PRINT  CHR$(4);"CLOSE SUPERSCORES.FILE"
  247. 8170  PRINT  CHR$(4);"LOCK SUPERSCORES.FILE"
  248. 9000  REM +--------------------+      :                    :      :  NOTES ON          :      :                    :      :  SUPERSCORES       :      :                    :      :                    :      +--------------------+ 
  249. 9010  REM  <CTRL-J> WHEN ENTERING DATA,   PLEASE DONT USE COMMAS OR   COLONS BECAUSE DEAR OLE     APPLE WONT READ PAST THE    COMMAS.
  250. 9020  REM   <CTRL-J>WHEN ALL THE HIGH     SCORES FINISH LISTING, THEY START OVER. THE ========    MARKS THE BEGINNING.  TO    STOP THE LISTING JUST HIT   THE SPACE BAR
  251. 9030  REM  <CTRL-J>A)DD IS THE SAME AS    CHANGE AN OLD RECORD.       HOWEVER; IN ORDER TO CHANGE AN OLD SCORE, YOU HAVE TO   SPELL IT RIGHT.